import os
from openpyxl import load_workbook, workbook
from settings import testdates_path


class MyExcel:

    def __init__(self, excel_path: str):
        """
        1、需要判断路径是否存在。如果不存在，抛异常。如果存在，打开。
        :param excel_path: 完整的excel文件路径
        """
        if os.path.isfile(excel_path):
            if excel_path.endswith(".xlsx"):
                self.wb = load_workbook(excel_path)
                self.excel_path = excel_path
            else:
                print("文件不是以xlsx结尾，不支持处理。")
        else:
            print("文件路径不存在。")
            raise FileNotFoundError

    def read_all_datas(self, sheet_name):
        """
        :param sheet_name: 需要获取数据的表单
        :return: 返回表单所有数据，字典格式
        """
        cases_list = []
        # 获取表单里的所有数据
        all_values = list(self.wb[sheet_name].values)
        # 获取表单第一行，作为key
        keys = all_values[0]
        # 遍历表单，从第2行开始
        for values in all_values[1:]:
            # 把key和每一行进行组合成字典
            case = dict(zip(keys, values))
            cases_list.append(case)
        return cases_list


if __name__ == '__main__':
    myexcel = MyExcel(testdates_path)
    print(myexcel.read_all_datas("后端-管理员登录"))
